﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using CruzDelSur.Dominio;
using NHibernate;
using NHibernate.Criterion;
using Common.Logging;

namespace CruzDelSur.Persistencia
{
    public class ParametroDAO : BaseDAO<Parametro, string>, IParametroDAO
    {
        public ICollection<Parametro> ListarParametros(string codigo)
        {
            using (ISession sesion = NHibernateHelper.AbrirSesion())
            {
                ICollection<Parametro> resultado = sesion.CreateSQLQuery("SELECT p.codtipo as Tipo, " +
                "p.codparametro as Codigo, p.desparametro as Descripcion FROM SE_TB_Parametros" +
                      " AS p LEFT OUTER JOIN SE_TB_Servicio_Caracteristicas AS c ON " +
                      " p.codparametro = c.codparametro AND c.codServicio = :codigo " +
                      " WHERE (c.codServicio IS NULL) ").SetParameter("codigo", codigo)
                      .SetResultTransformer(new NHibernate.Transform.AliasToBeanResultTransformer(typeof(Parametro)))
                      .List<Parametro>();
                return resultado;
            }
        }
        public ICollection<Parametro> Listar()
        {
            using (ISession sesion = NHibernateHelper.AbrirSesion())
            {
                ICollection<Parametro> resultado = sesion.CreateCriteria<Parametro>().List<Parametro>();
                return resultado;
            }
        }
    }
}